from method import Method, Param, KeywordParam, String, Boolean, Integer

class Get(Method):
    """
    This method returns a list of SubCategories for the specified user
    (identified by SessionID or (optional) NickName) in the specified
    Category (identified by CategoryID).

    Arguments:
    Integer CategoryID
    String NickName (optional)
    String SitePassword (optional)
    """

    name = 'smugmug.subcategories.get'
    params = (
        Param('CategoryID', Integer),
    )
    keywordParams = (    
        KeywordParam('NickName', String),
        KeywordParam('SitePassword', String)
    )

get = Get()

class GetAll(Method):
    """
    This method returns a list of SubCategories for the specified user
    (identified by SessionID or (optional) NickName).  Unlike
    smugmug.subcategories.get, this returns a complete list, rather than one
    just for a given Category.

    Arguments:
    String NickName (optional)
    String SitePassword (optional)
    """

    name = 'smugmug.subcategories.getAll'
    keywordParams = (    
        KeywordParam('NickName', String),
        KeywordParam('SitePassword', String)
    )

getAll = GetAll()

class Create(Method):
    """
    This method creates a new SubCategory with the given Name.

    Arguments:
    String Name
    Integer CategoryID
    """

    name = 'smugmug.subcategories.create'
    params = (
        Param('Name', String),
        Param('CategoryID', Integer)
    )

create = Create()

class Delete(Method):
    """
    This method deletes the specified SubCategory.

    Arguments:
    Integer SubCategoryID
    """

    name = 'smugmug.subcategories.delete'
    params = (
        Param('SubCategoryID', Integer),
    )

delete = Delete()

class Rename(Method):
    """
    This method renames the specified SubCategory with new Name.

    Arguments:
    Integer SubCategoryID
    String Name
    """

    name = 'smugmug.subcategories.rename'
    params = (
        Param('SubCategoryID', Integer),
        Param('Name', String)
    )

rename = Rename()
